I2C এবং SPI Communication এর উদাহরণ

Computer Programming - আরডুইনো (Arduino) I2C এবং SPI Communication (I2C and SPI Communication in Arduino) |
244
244

I2C Communication

I2C (Inter-Integrated Circuit) একটি যোগাযোগ প্রোটোকল যা একাধিক ডিভাইসের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। I2C প্রোটোকল সাধারণত দুইটি পিন ব্যবহার করে: SDA (Data Line) এবং SCL (Clock Line)।

I2C Communication এর ব্যবহার

I2C প্রোটোকলটি সেন্সর, EEPROM, LCD এবং অন্যান্য ডিভাইসের সাথে যোগাযোগের জন্য ব্যবহৃত হয়।

Arduino তে I2C Communication এর উদাহরণ

ধরা যাক, আমরা একটি I2C EEPROM (24C02) ব্যবহার করছি। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Arduino একটি EEPROM থেকে ডেটা পড়ে এবং লেখে।

#include <Wire.h> // I2C লাইব্রেরি

#define EEPROM_ADDRESS 0x50 // EEPROM এর I2C ঠিকানা

void setup() {
  Wire.begin(); // I2C শুরু
  Serial.begin(9600);
}

void loop() {
  // EEPROM এ ডেটা লেখা
  Wire.beginTransmission(EEPROM_ADDRESS);
  Wire.write(0x00); // যে ঠিকানায় লেখার জন্য সেটি
  Wire.write("Hello"); // লেখার জন্য ডেটা
  Wire.endTransmission();
  delay(100);

  // EEPROM থেকে ডেটা পড়া
  Wire.beginTransmission(EEPROM_ADDRESS);
  Wire.write(0x00); // যে ঠিকানায় পড়ার জন্য সেটি
  Wire.endTransmission();

  Wire.requestFrom(EEPROM_ADDRESS, 5); // 5 বাইট ডেটা পড়া
  while (Wire.available()) {
    char c = Wire.read(); // ডেটা পড়া
    Serial.print(c); // সিরিয়াল মনিটরে প্রিন্ট
  }
  Serial.println();
  delay(1000); // ১ সেকেন্ড অপেক্ষা
}

SPI Communication

SPI (Serial Peripheral Interface) একটি উচ্চ গতির সিরিয়াল যোগাযোগ প্রোটোকল যা একটি মাস্টার ডিভাইস এবং এক বা একাধিক স্লেভ ডিভাইসের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। SPI তে সাধারণত চারটি পিন ব্যবহৃত হয়: MOSI (Master Out Slave In), MISO (Master In Slave Out), SCK (Clock), এবং SS (Slave Select).

SPI Communication এর ব্যবহার

SPI সাধারণত SD কার্ড, OLED ডিসপ্লে, ডাটা লগার, এবং অন্যান্য উচ্চ গতির ডিভাইসের সাথে যোগাযোগের জন্য ব্যবহৃত হয়।

Arduino তে SPI Communication এর উদাহরণ

এখন আমরা একটি SPI ডিভাইস (যেমন MAX7219 LED ডিসপ্লে ড্রাইভার) ব্যবহার করে একটি উদাহরণ দেখাব।

#include <SPI.h> // SPI লাইব্রেরি

#define CS_PIN 10 // Chip Select পিন

void setup() {
  pinMode(CS_PIN, OUTPUT);
  SPI.begin(); // SPI শুরু
  digitalWrite(CS_PIN, HIGH); // CS পিন উচ্চ রাখুন
}

void loop() {
  digitalWrite(CS_PIN, LOW); // Chip Select নিচে
  SPI.transfer(0x01); // ডেটা প্রেরণ
  SPI.transfer(0xFF); // ডেটা প্রেরণ
  digitalWrite(CS_PIN, HIGH); // Chip Select উচ্চ রাখুন
  delay(1000); // ১ সেকেন্ড অপেক্ষা
}

I2C এবং SPI এর মধ্যে তুলনা

  • পিন সংখ্যা: I2C সাধারণত দুইটি পিন (SDA এবং SCL) ব্যবহার করে, যেখানে SPI চারটি পিন (MOSI, MISO, SCK, SS) ব্যবহার করে।
  • গতির তুলনা: SPI সাধারণত I2C এর তুলনায় বেশি দ্রুত ডেটা ট্রান্সফার করতে সক্ষম।
  • ডিভাইস সংখ্যা: I2C একাধিক ডিভাইসের সাথে যোগাযোগ করতে পারে, যেখানে SPI তে একটি মাস্টার এবং একাধিক স্লেভ থাকতে পারে।
  • ডেটা ট্রান্সফারের পদ্ধতি: I2C মাল্টি-মাস্টার এবং মাল্টি-স্লেভ সমর্থন করে, যেখানে SPI সাধারণত একটি মাস্টার এবং একাধিক স্লেভ ডিভাইসের মধ্যে কাজ করে।

I2C এবং SPI উভয়ই Arduino প্রোজেক্টে খুবই জনপ্রিয় যোগাযোগ প্রোটোকল। এগুলো বিভিন্ন ডিভাইসের সাথে দ্রুত এবং কার্যকর যোগাযোগ নিশ্চিত করতে সহায়তা করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion